package com.easy.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 自定义方法日志注解，用于标记需要记录日志的方法
 * 作用：通过AOP拦截被该注解标记的方法，自动记录方法调用信息（如服务名、参数、返回值等）
 */
// @Target：指定注解可使用的位置，这里仅允许标记在方法上（ElementType.METHOD）
@Target(value = {ElementType.METHOD})
// @Retention：指定注解的保留策略，RUNTIME表示注解在运行时可见（AOP需要在运行时解析）
@Retention(RetentionPolicy.RUNTIME)
public @interface LogMethod {
    // 服务名称（必填属性，用于日志中标识业务模块）
    String serviceName();
    // 是否记录方法参数（可选属性，默认值为true）
    boolean recordParam() default true;
    // 是否记录方法返回值（可选属性，默认值为false）
    boolean recordReturn() default false;//默认不记录

}
